using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class EnemyBullet : MonoBehaviour
{
    [SerializeField] private float speed;
    [SerializeField] private float lifeTime;
    [SerializeField] private float distance;
    [SerializeField] private int damage;

    [SerializeField] LayerMask whatIsSolid;
    [SerializeField] private GameObject bulletEffect;

    // Поворот пули на 90 градусов и удаление объекта пули через определённый промежуток времени
    private void Start() {
        transform.Rotate(0, 0, 90);
        Invoke("DestroyBullet", lifeTime);
    }

    // Обработка полёта пули
    private void Update() {
        RaycastHit2D hitInfo = Physics2D.Raycast(transform.position, Vector2.down, distance, whatIsSolid);
        if (hitInfo.collider != null) { // Нанесение урона игроку при столкновении
            if (hitInfo.collider.CompareTag("Player") || hitInfo.collider.CompareTag("SecondPlayer")) {
                hitInfo.collider.GetComponent<PlayerController>().ChangeHealth(-damage);
            }
            DestroyBullet();
        }

        // Перемещение пули
        transform.Translate(Vector2.up * speed * Time.deltaTime);
    }

    // Удаление пули
    public void DestroyBullet() {   
        Instantiate(bulletEffect, transform.position, Quaternion.identity);
        Destroy(gameObject);
    }
}
